A modern computer system may be conceptually divided into hardware, operating system, and application programs. The hardware (i.e., central processing unit (CPU), memory, persistent storage devices, and input/output (I/O) devices) provides the basic computing resources. An operating system is a program that functions as an intermediary between the application program layer and the computer hardware. Application programs (i.e., compilers, database systems, software, and business programs) define the ways in which these hardware resources are used to solve the computing problems of the users. Users may include people, machines, and other computers that use the application programs, which in turn employ hardware resources to solve numerous types of problems. To this end, the operating system is involved in coordinating the use of the hardware resource base to enable a broad range of computative tasks (i.e., memory management, hardware resource management, maintaining a file system, processing user-level requests, administrative tasks, networking tasks, etc.).